package org.example.studentmanager.dao;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.example.studentmanager.entity.Course;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

@Mapper
@Repository
public interface CourseDao {
    /**
     * 根据课程名称模糊查询课程，若课程名称为空则查询所有课程
     * @param courseName 课程名称关键字
     * @return 符合条件的课程列表
     */
    List<Course> queryCourses(@Param("courseName") String courseName);

    /**
     *  课程创建接口
     * @param course 课程相关信息
     * @return 创建的课程条数（应该就是0或者1）
     * */
    Integer insertCourse(Course course);

    /**
     * 根据课程id查询出课程信息
     * @param courseId 课程id
     * @return 课程信息
     */
    Course queryCourseByCourseId(@Param("id") Integer courseId);

    /**
     * 删除课程，将 is_delete 设为 True
     * @param courseId 课程 ID
     * @return 受影响的行数
     */
    int deleteCourse(@Param("courseId") Integer courseId);

    int updateCourse(Course course);

    int deleteClassCourseByCourseId(@Param("courseId") Integer courseId);

    int deleteCourseSelectionsStudentByCourseId(@Param("courseId") Integer courseId);

    int deleteCourseSelectionsTeacherByCourseId(@Param("courseId") Integer courseId);

}
